fhir 0.8.0 fhir: ^0.8.0 copied to clipboard
FHIR library of versions R4, STU3, DSTU2, and R5 (draft) for Dart & Flutter.
- Updating so soon for Flutter 3.0.0
- Removed a lot of enums that I had left in R5
- Removed the generation files that I used
- Some basic formatting things
- Finally updating R5 to most recent releast (0.4.6) - complete with comments
- Removed commented out 'flutter/foundation.dart' because I don't want these to require Flutter dependence even if it would make it easily readable in Flutter's devtool.
- Updated dependencies (most importantly to Freezed 2.0.0)
- Made Integer64 a BigInt (which I think makes sense for what it's representing, although it does make it harder to compare with other FhirNumbers)
- Changed operator== for Time and FhirDateTime because it was throwing an error when really it should just return false if the types couldn't be compared
- 3 Resource methods changed to getters: resourceTypeString, thisReference, path (this will break some things, but I think they make more sense as getters)
- Updated to dart 2.16.0
- Added a .fromJsonString(String source) because I'm tired of writing Resource.fromjson(jsonDecode(source));
- Because I was tired of having a test version and not an official version
- Also mostly because I had to change numbers. Most basic numbers according to the FHIR spec, cannot accept Strings.
- Previously this library DID allow this, and this has now been fixed, but could certainly break some implementations.
- Double, Integer, Integer64, PositiveInt, UnsignedInt now ONLY allow numbers, not Strings.
- Allow construction of FhirDateTime from another FhirDateTime
- Allow construction of Decimal from another Decimal or an Integer
- Updated to Dart 2.15.0
- Update other dependencies
- Not sure if copyWith was needed for Resource, but now it's there
- The ID thing was bothering me
- Now the newId and newIdIfNoId functions return resources as they should, instead of just IDs
- Also, freezed 1.0.0
- Fixing dumb errors (path() again)
- Removed copyWith from generic Resource
- Fixed incorrect return value from thisReference()
- Fixed incorrect return value from path() (now returns only 'ResourceType/Id')
- Can't return any resource with new Id, so will just return an Id (will consider fixing this in later updates)
- Fixed == in BaseDateTime class
- Messed up updateVersion, changed updateMeta to updateVersion
- Added newIdIfNoID, newId and updateMeta to resources (in addition to newVersion which I assume no one was actually using)
- Added convenience method to get path to Resource, formed as: ResourceType/Id
- Update dependencies
- Split updateVersion method into method for updating only meta or updating only ID
- Generating ID now generates UUID V4
- Updated to Dart 2.14.0
- Created a FhirNumber class
- Created FhirDateTimeBase class
- Created extra operators for Dates, DateTimes, Times, Decimal, Integers
- These operators follow general rules on comparisons, but some may be specific to FHIRPath. If these cause issues for anyone, please let me know.
- Updated R5
- Updated dependencies
- reran code genderation
- Added a workaround for stack overflow on release builds
- Added a way to create a FhirDateTime from a Date
- Fixed a constructor issue in Date
- Updated some dateTime dependencies
- No longer use runtimeType string names for primitive type construction
- Fix for Base64 primitive type
- Fix Canonical, Url, Uri primitive types saying they're valid when they're not and vice versa
- Stable(ish) & null safe!
- updated dependencies, mostly just new version of freezed
- updated dependencies
- this included freezed, so some of the syntax had to change
- Null safety!
- Should be completely ready for null safety
- Removed dartz & string_validator because I wasn't using them anymore, to try and remove as many foreign dependencies as I could
- Should generally work the same as previously, you'll just need to follow null safety requirements
- Big thanks to Tiloc for his PR on this one. He redid Date, FhirDateTime and Instant to be more useful. So you can now call .toString(), .toYaml(), .toJson() and now ALSO .value on any of these. The first 3 will return the proper format for that specification, and .value will return a dart DateTime so you can actually perform calculations.
- Also added in a whole lot more examples to test since I've been playing with bulk downloads.
- Need to override
==better for the same type of object
- Hooray for user input!
- Adjusted primitives to make them easier to work with
- Because it overrides the
==operator, the primitive must come first when comparing to raw value
- Added example (need those pub points!)
- Mostly just cleaning up my repos to be easier for me to work with
- Functionality should be mostly unchanged
- Added FHIR® to Readme, with official permission from HL7 and Graham Grieve!
- Keep trying to make it easier to use
- but once I upload a version, I can't upload the same fucking version again
- just little tweaks
- newVersion method will update resource meta, or allows a separate meta to update and include with resource
- added a resourceTypeString method to easily get string from enum (needed for Db)
- replaced resourceType in each resource with enum instead of String
- Changed resource_utils to use enums instead of runtimeType (because runtimeType doesn't work)
- moved all resource, resource_utils and enums into a separate folder
- That's right, a whole other version number!
- added a thisReference method for resources
- moved fromJson to its own file
- added a newVersion method (stolen from DB), because it seemed like something that is generally useful
- Commented all of R4
- Added some YAML functionality.
- New Function toYamlString() changes resource to string formatted in YAML.
- New Function toYamlMap() changes resource to map but YAML format specific.
- New Function fromYaml, parses a string or yamlMap and creates the resource.
- Fixed some resourceType fields that weren't defined properly
- Updating to removed fields that are named using Dart reserved words. I thought I had caught all of them previously, but apparently not. Dart has a number of words that are reserved, and I was still using some of them. These included: extension, part, import, get, on, operator and set. As previously, they have had an underscore added (
extension_etc.). However, these are not changed in the json, so the input and out put remains unchanged.
- Changed how resourceType handles defaults. It wasn't really functionaing the previous way. In addition, it was required, which mean that you had to include it when you made the resource (which was a pain in the ass). Now if you leave it blank, it will automatically include the correct resourceType. It will still, however, allow you to pass in the incorrect resourceType for that resource if you want to (this can be handled by the individual as far as I'm concerned).
- Changed Duration to FhirDuration because dart core contains Duration and I was tired of dealing with it
- Ran formatter
- Generated documentation
- Eased restrictions on Instant
- Made dstu2 enums 'part of' instead of importing (easier to use dstu2 Enums in other projects)
- Added an errorMessage() method to primitiveFailures
- Added an isValid getter to primitiveObjects
- Updated some dependencies
- Changed two types in Meta for Stu3
- Added a simple test file
- Changed Dates to its own PrimitiveClass, simplified formatting (just counting length)
- updated R5 to v4.5.0
- new resources: Permission, NutritionProduct, SubscriptionStatus and SubscriptionTopic
- new draft resource Citation and EvidenceReport
- does not pass all tests (becuase downloadable specs, examples and online references do not agree)
- Trying for more pubdev points
- No double quotes (even for Regex expressions)
- Ensure @override is present for members
- Don't use this.toJson in Resource class (it's never used anyway)
- Always use braces on if statements (otherwise dartfmt may not run)
- got rid of primitive_types folder in r5 that I had forgotten to delete
- dartfmt and dartdoc won't run in pana (I think because of too many files)
- Simplified date, dateTime, instant (now implementers will have to deal with display instead of me)
- rewrote testing function (it's a pain to do deep comparisons of maps)
- doesn't follow classic check-test patterns, writes errors to file (makes it easier for me to debug)
- fixed some enums in dstu2
- expanded definition of url because dart's definition doesn't match with FHIR's
- relaxed base64binary (just a String now) requirements because Dart's is more narrow than FHIR's
- taking out resource.g.dart (not used, doesn't seem to change functionality)
- Refactored Dstu2 to be more consistent with other versions, field names are the same, some class names changed
- Changed primitive equality, returns true for Code('code') == Code('code') AND Code('code') == 'code
- Updated pubspec (again), added examples and documentation
- Immediately had to update it because of mispellings in pubspec.yaml