hl7au / au-fhir-pd Goto Github PK
View Code? Open in Web Editor NEWAustralian context FHIR profile for provider directory services
License: MIT License
Australian context FHIR profile for provider directory services
License: MIT License
The SMTWG meeting of 2 April 2020 agreed to make it mandatory for PractitionerRole to reference exactly one Location and for that reference to be to the same one Location as the referenced HealthcareService (which also is required to reference exactly one Location).
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
In preparation for transition to the external template methodology (via #33), it is evident that the 2 PD CodeSystems have a non-standard URL -
QA errors
codesystem-endpoint-payload-type.xml: the canonical URL (http://hl7.org.au/fhir/pd/CodeSystem/endpoint-payload-type) does not match the URL (http://hl7.org.au/fhir/CodeSystem/endpoint-payload-type)
codesystem-smd-interfaces.xml: the canonical URL (http://hl7.org.au/fhir/pd/CodeSystem/smd-interfaces) does not match the URL (http://hl7.org.au/fhir/CodeSystem/smd-interfaces)
Essentially the CodeSystem URLs have the prefix http://hl7.org.au/fhir/<resource>
whereas the PD ValueSet, StructureDefinition and ImplementationGuide resources all have the prefix http://hl7.org.au/fhir/pd/<resource>
.
Given the downstream implementation impact of changing CodeSystem URLs, it is unlikely that these will be changed. However, suggest that the QA errors be eliminated by adding special-url
parameters in the ImplementationGuide resource, as follows:
<parameter>
<code value="special-url"/>
<value value="http://hl7.org.au/fhir/CodeSystem/endpoint-payload-type"/>
</parameter>
<parameter>
<code value="special-url"/>
<value value="http://hl7.org.au/fhir/CodeSystem/smd-interfaces"/>
</parameter>
The AU-PD IG currently states in relation to paging:
Bundle.link (paging) MAY be supplied by directory service provider, this is most useful as _count limit on result count suggests paging is desirable.
It is difficult (impossible?) for a client to be sure it is obtaining a complete result set if the server does not support paging.
The SMTWG meeting of 19 March 2020 agreed to make the server support for paging mandatory.
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
Currently there is no way of determining which PRs work at a HCS. This has been flagged as limitation and through the SMIO vendors have indicated that this would be a useful query to support.
There is an existing search parameter 'service' in PractitionerRole search parameters in core FHIR specification http://hl7.org/fhir/R4/practitionerrole.html#search
Something like /PractitionerRole?service=1234
However, although PD PractitionerRole.healthcareService is specified as MUST support, the 'service' search has not been included as a required search parameter support in the AU-PD IG (so no specific requirement that directory providers supply this capability).
The SMTWG meeting of 19 March 2020 agreed to make ‘service’ a required search parameter.
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
The sole PractitionerRole example for AU PD Practitioner Role profile has the following QA errors in relation to the the identifier element slicing:
practitionerrole-example0.xml :: PractitionerRole.identifier[0] & PractitionerRole.identifier[1]
Slicing cannot be evaluated: Could not match discriminator (1) for slice [type] in profile PractitionerRole.identifier:vendorAssignedDirectoryIdentifier - the discriminator http://hl7.org.au/fhir/pd/StructureDefinition/au-pd-practitionerrole|2.1.0 does not have fixed value, binding or existence assertions
Should this identifier be abstracted into an Identifier profile in its own right as all other HL7AU base identifiers are, and follow a similar pattern?
The ig.ini currently points to v0.4.0 of the hl7.au.fhir.template
, which results in a build failure with this error message
Template fhir.base.template#0.4.0 names a script, but is not explicit about all ant scripts - this is no longer allowed
See failure log from a recently triggered autobuild: https://build.fhir.org/ig/hl7au/au-fhir-pd/branches/master/failure/build.log
au-fhir-base and au-fhir-core both recently updated their ig.ini files to point to v0.6.0 of the template, for the same issue.
Therefore, update the au-fhir-pd ig.ini to point to 0.6.0 of the template
HealthcareService?service-type=[system][code]
This seems incorrectly listed on http://hl7.org.au/fhir/pd/pd2/StructureDefinition-au-pd-healthcareservice.html as
GET [base]/HealthcareService?type=[system]|[code]
should be
GET [base]/HealthcareService?service-type=[system][code]
Endpoint URL references to au-base (http://hl7.org.au/fhir/base/2019Aug/StructureDefinition**) produce 404 errors for the following elements:
Should reference http://hl7.org.au/fhir/2020Aug/StructureDefinition-***
To assist in matching it is recommended that we include a PCA identifier slice for the following resource profiles:
AU PD Healthcare Service
AU PD Location
AU PD Organisation
AU PD Practitioner
AU PD Practitioner Role
HealthcareService and PractitionerRole URL references to au-base (http://hl7.org.au/fhir/base/2019Aug/StructureDefinition**) produce 404 errors for the following elements:
Should reference http://hl7.org.au/fhir/2020Aug/StructureDefinition-***
The SMTWG meeting of 19 March 2020 agreed to make the reference to HealthcareService mandatory to relieve clients from having to support two models.
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
The AU PD Practitioner profile has the following QA error on the identifier element:
The element Practitioner.identifier:hpii launches straight into slicing without the slicing being set up properly first
element
node for Practitioner.identifier
preceding the element node for Practitioner.identifier:hpii
Practitioner.identifier:hpii
does not include a type
child with the url for the hpii profile (http://hl7.org.au/fhir/StructureDefinition/au-hpii)The following code (aligned to AU Core Practitioner) to replace the existing PD code fixes the issue:
<element id="Practitioner.identifier">
<path value="Practitioner.identifier"/>
<slicing>
<discriminator>
<type value="pattern"/>
<path value="type"/>
</discriminator>
<rules value="open"/>
</slicing>
<definition value="An identifier that applies to this person in this role."/>
<mustSupport value="true"/>
</element>
<element id="Practitioner.identifier:hpii">
<path value="Practitioner.identifier" />
<sliceName value="hpii" />
<short value="HPI-I for Directory Entry Practitioner" />
<definition value="National identifier for the individual provider" />
<type>
<code value="Identifier"/>
<profile value="http://hl7.org.au/fhir/StructureDefinition/au-hpii"/>
</type>
<mustSupport value="true" />
</element>
Resource relationship diagrams for PR and HCS in Guidance.html need to reflect latest constraints
Latest IG publisher will not run on fhirVersion=4.0.0
Update ig.xml and ig.json to fhirVersion=4.0.1
Hi team
I tried the validation CLI tool in the format and got this error - Invalid HTTP response 404 from https://build.fhir.org/ig/AuDigitalHealth/au-fhir-pd/branches/main/package.tgz
java -jar validator_cli.jar aupd-r4-validate-sample-HealthcareService-example0.json -version 4.0.1 -ig hl7.fhir.au.pd#current
FHIR Validation tool Version 6.0.25 (Git# bc3f3481080e). Built 2023-08-04T17:55:29.839Z (58 days old)
Java: 12-ea from /Users/*/12.ea.20-open on x86_64 (64bit). 4096MB available
Paths: Current = /Users/*/fhir-validator-cli, Package Cache = /Users/*/packages
Params: aupd-r4-validate-sample-HealthcareService-example0.json -version 4.0.1 -ig hl7.fhir.au.pd#current
*
Loading
Load FHIR v4.0 from hl7.fhir.r4.core#4.0.1 - 4576 resources (00:05.720)
Load hl7.fhir.uv.extensions.r4#1.0.0 - 1328 resources (00:01.016)
Load hl7.terminology#5.3.0 - 4201 resources (00:01.297)
Load hl7.terminology.r5#5.0.0 - 4174 resources (00:02.829)
Load hl7.fhir.uv.extensions#1.0.0 - 1328 resources (00:00.035)
Terminology server http://tx.fhir.org - Version 3.0.0 (00:01.815)
Installing hl7.fhir.au.pd#current to the package cache
Fetching:
Exception in thread "main" org.hl7.fhir.exceptions.FHIRException: Unable to fetch: Invalid HTTP response 404 from https://build.fhir.org/ig/AuDigitalHealth/au-fhir-pd/branches/main/package.tgz (Not Found) (no content)
at org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager.fetchFromUrlSpecific(FilesystemPackageCacheManager.java:637)
at org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager.loadFromCIBuild(FilesystemPackageCacheManager.java:649)
at org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager.loadPackage(FilesystemPackageCacheManager.java:613)
However, these 2 worked according to the available versions, although the warning and info notes were different from the AU base, not sure why pd shows 1 warnings, 1 notes while base shows 0 errors, 0 warnings, 3 notes ?
java -jar validator_cli.jar aupd-r4-validate-sample-HealthcareService-example0.json -version 4.0.0 -ig hl7.fhir.au.pd#2.0.1
Loading
Load FHIR v4.0 from hl7.fhir.r4.core#4.0.1 - 4576 resources (00:05.462)
Load hl7.fhir.uv.extensions.r4#1.0.0 - 1328 resources (00:00.884)
Load hl7.terminology#5.3.0 - 4201 resources (00:02.581)
Load hl7.terminology.r5#5.0.0 - 4174 resources (00:02.211)
Load hl7.fhir.uv.extensions#1.0.0 - 1328 resources (00:00.045)
Terminology server http://tx.fhir.org - Version 3.0.0 (00:01.983)
Installing hl7.fhir.au.pd#2.0.1 to the package cache
Fetching:
Installing hl7.fhir.au.pd#2.0.1 done.
Load hl7.fhir.au.pd#2.0.1 - 14 resources (00:01.093)
Package Summary: [hl7.fhir.r4.core#4.0.1, hl7.fhir.xver-extensions#0.0.12, hl7.fhir.uv.extensions.r4#1.0.0, hl7.terminology#5.3.0, hl7.terminology.r5#5.0.0, hl7.fhir.uv.extensions#1.0.0, hl7.fhir.au.pd#2.0.1]
Get set... go (00:03.243)
Validating
Validate aupd-r4-validate-sample-HealthcareService-example0.json
Validate HealthcareService against http://hl7.org/fhir/StructureDefinition/HealthcareService|4.0.1..........20..........40..........60..........80.........|
Validate HealthcareService against http://hl7.org.au/fhir/pd/StructureDefinition/au-pd-healthcareservice..........20..........40..........60..........80..........100.|
00:01.240
Done. Times: Loading: 00:17.798, validation: 00:01.240. Memory = 458Mb
Success: 0 errors, 1 warnings, 1 notes
Information @ HealthcareService.specialty[0] (line 18, col6): None of the codings provided are in the value set 'Practice Setting Code Value Set' (http://hl7.org/fhir/ValueSet/c80-practice-codes|4.0.1), and a coding is recommended to come from this value set) (codes = http://snomed.info/sct#310000008)
Warning @ HealthcareService.specialty[0] (line 18, col6): ValueSet http://hl7.org.au/fhir/ValueSet/snomed-healthcareservice-specialties not found
Done. Times: Loading: 00:17.798, validation: 00:01.240. Max Memory = 4Gb
The AU base log
java -jar validator_cli.jar aupd-r4-validate-sample-HealthcareService-example0.json -version 4.0.1 -ig hl7.fhir.au.base#2.1.0
Loading
Load FHIR v4.0 from hl7.fhir.r4.core#4.0.1 - 4576 resources (00:06.152)
Load hl7.fhir.uv.extensions.r4#1.0.0 - 1328 resources (00:01.023)
Load hl7.terminology#5.3.0 - 4201 resources (00:02.696)
Load hl7.terminology.r5#5.0.0 - 4174 resources (00:01.642)
Load hl7.fhir.uv.extensions#1.0.0 - 1328 resources (00:00.023)
Terminology server http://tx.fhir.org - Version 3.0.0 (00:02.087)
Load hl7.fhir.au.base#2.1.0 - 93 resources (00:00.010)
Package Summary: [hl7.fhir.r4.core#4.0.1, hl7.fhir.xver-extensions#0.0.12, hl7.fhir.uv.extensions.r4#1.0.0, hl7.terminology#5.3.0, hl7.terminology.r5#5.0.0, hl7.fhir.uv.extensions#1.0.0, hl7.fhir.au.base#2.1.0]
Get set... go (00:03.693)
Validating
Validate aupd-r4-validate-sample-HealthcareService-example0.json
Validate HealthcareService against http://hl7.org/fhir/StructureDefinition/HealthcareService|4.0.1..........20..........40..........60..........80.........|
Validate HealthcareService against http://hl7.org.au/fhir/pd/StructureDefinition/au-pd-healthcareservice..........20..........40..........60..........80..........100.|
00:02.769
Done. Times: Loading: 00:17.647, validation: 00:02.770. Memory = 496Mb
Success: 0 errors, 0 warnings, 3 notes
Information @ HealthcareService.specialty[0] (line 18, col6): None of the codings provided are in the value set 'Healthcare Service Specialties (SNOMED)' (http://hl7.org.au/fhir/ValueSet/snomed-healthcareservice-specialties|2.1.0), and a coding is recommended to come from this value set) (codes = http://snomed.info/sct#310000008)
Information @ HealthcareService.specialty[0] (line 18, col6): None of the codings provided are in the value set 'Practice Setting Code Value Set' (http://hl7.org/fhir/ValueSet/c80-practice-codes|4.0.1), and a coding is recommended to come from this value set) (codes = http://snomed.info/sct#310000008)
Information @ HealthcareService.meta.profile[0] (line 6, col78): Canonical URL 'http://hl7.org.au/fhir/pd/StructureDefinition/au-pd-healthcareservice' does not resolve
Done. Times: Loading: 00:17.647, validation: 00:02.770. Max Memory = 4Gb
Further, noticed that the profile switch resulted in an Exception with the AU base as below.
java -jar validator_cli.jar aupd-r4-validate-sample-HealthcareService-example0.json -version 4.0.1 -ig hl7.fhir.au.base#2.1.0 -profile http://hl7.org.au/fhir/pd/StructureDefinition/au-pd-healthcareservice
Loading
Load FHIR v4.0 from hl7.fhir.r4.core#4.0.1 - 4576 resources (00:06.303)
Load hl7.fhir.uv.extensions.r4#1.0.0 - 1328 resources (00:01.098)
Load hl7.terminology#5.3.0 - 4201 resources (00:02.487)
Load hl7.terminology.r5#5.0.0 - 4174 resources (00:02.280)
Load hl7.fhir.uv.extensions#1.0.0 - 1328 resources (00:00.053)
Terminology server http://tx.fhir.org - Version 3.0.0 (00:02.112)
Load hl7.fhir.au.base#2.1.0 - 93 resources (00:00.377)
Package Summary: [hl7.fhir.r4.core#4.0.1, hl7.fhir.xver-extensions#0.0.12, hl7.fhir.uv.extensions.r4#1.0.0, hl7.terminology#5.3.0, hl7.terminology.r5#5.0.0, hl7.fhir.uv.extensions#1.0.0, hl7.fhir.au.base#2.1.0]
Get set... go (00:04.009)
Fetch Profile from http://hl7.org.au/fhir/pd/StructureDefinition/au-pd-healthcareservice
Exception in thread "main" org.hl7.fhir.exceptions.FHIRFormatError: This does not appear to be a FHIR resource (wrong namespace 'http://www.w3.org/1999/xhtml') (@ /)
at org.hl7.fhir.r5.formats.XmlParserBase.parse(XmlParserBase.java:143)
at org.hl7.fhir.r5.formats.XmlParserBase.parse(XmlParserBase.java:128)
at org.hl7.fhir.r5.formats.ParserBase.parse(ParserBase.java:65)
at org.hl7.fhir.validation.ValidationEngine.loadProfile(ValidationEngine.java:541)
The SMTWG meeting of 2 April 2020 agreed to retain available times as optional on Location, but include guidance that these are the times the location itself is available rather than the times any HealthcareService is available, and that directory clients should be using the HealthcareService available times and ignore the available times on Location.
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
With the work underway for the transition to use external templates (ticket #33), the following artefacts do not yet have appropriate markers as to their respective maturity / status. This ticket is a placeholder for this consideration be given, once #33 has been completed.
Transition branch refers to the, as yet unmerged, PR here #41.
draft
0
active
false
draft
for this elementThe SMTWG meeting of 2 April 2020 agreed to provide guidance that Endpoints referenced from a Location are used to communicate with the Location itself (e.g. the building management), and not the PractitionerRoles or HealthcareServices at that Location.
Therefore clients can generally ignore Endpoint references on Locations.
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
PractitionerRole?role=[system]|[code]
This seems incorrectly listed on http://hl7.org.au/fhir/pd/pd2/StructureDefinition-au-pd-practitionerrole.html as
GET [base]/PractitionerRole?code=[system]|[code]
should be
GET [base]/PractitionerRole?role=[system]|[code]
The diagram referenced here is incorrect and does not accurately represent the detailed references in the profiles:
The diagram needs to be updated to the one below to reflect the relationships correctly:
The SMTWG meeting of 2 April 2020 agreed to provide guidance that:
a) If a PractitionerRole is reachable through an Endpoint, the PractitionerRole must explicitly reference that Endpoint.
b) Clients wishing to address a message to a PractitionerRole MUST use an Endpoint directly referenced by that PractitionerRole.
c) Clients wishing to address a message to a HealthcareService MUST use an Endpoint directly referenced by that HealthcareService.
d) Clients cannot assume that a PractitionerRole is reachable through an Endpoint referenced by the HealthcareService – unless the Endpoint is also directly referenced by the PractitionerRole.
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
This au-fhir-pd FHIR IG currently uses the deprecated ig.json methodology and many aspects are therefore quite dated. Profile sub-menus are broken and it is generally quite out of step with other HL7AU FHIR IGs.
The IG repo needs to be restructured and cleaned up to instead employ the current build methodology using an ig.ini that points to the HL7AU FHIR template, hl7.au.fhir.template#current
.
The Payload types are missing for orders and results :
http://hl7.org.au/fhir/pd/CodeSystem-endpoint-payload-type.html
suggest inclusion as per
PractitionerRole currently allows for references to multiple HealthcareServices, meaning that servers can advertise a single PractitionerRole for a practitioner practicing at multiple practices/clinics.
Whilst this is a simplification for servers, it means that clients wishing to display practitioner and practice/clinic information must enumerate the combinations of PractitionerRole and HealthcareService.
This also creates ambiguity about which HealthcareService I am referring the patient to if I am sending a referral to this PractitionerRole.
The SMTWG meeting of 2 April 2020 agreed to restrict PractitionerRole to reference exactly one HealthcareService to relieve clients from having to enumerate the combinations.
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
AU PD v2.0.1 has 3 SearchParameter resources listed on this page: https://hl7.org.au/fhir/pd/pd2/searchparams.html
Current build of AU PD v2.1.0 has no SearchParameter resources listed: http://build.fhir.org/ig/hl7au/au-fhir-pd/searchparams.html, although the source SearchParameter resources are present in the input folder but commented out in the ImplementationGuide resource.
When uncommenting the SearchParameter resources to see what happens, each had QA errors associated with their respective search expressions; similar to this pattern:
Error in search expression
'extension(‘http://hl7.org.au/fhir/StructureDefinition/au-receivingfacility’).extension(‘namespace-id’).value':
Error @1, 1: Found ‘ expecting a token name
All 3 SearchParameter resources also had schema errors including a missing mandatory url
value (although the IG Publisher did manage to generate a url value for each).
Recommend consideration to reinstate the SearchParameter resources once related errors are fixed.
The Organization associated with a PractitionerRole can be found via the HealthcareService, but retaining the existing direct reference from PracitionerRole would avoid the need to support _include:iterate
The SMTWG meeting of 2 April 2020 agreed to make it mandatory for PractitionerRole to reference exactly one Organization and for that reference to be to the same one Organization as the referenced HealthcareService (which also is required to reference exactly one Organization).
For details see:
https://collaborate.digitalhealth.gov.au/display/SMT/Proposed+changes+-+March+2020
As per image below the narrative does not match the diagram and should be updated as per red markup.
URL source: https://build.fhir.org/ig/hl7au/au-fhir-pd/guidance.html#provider-directory-core-entity-relationships
Is the link for AUPD HCS samples missing or deleted? I am getting a 404 on this
https://build.fhir.org/ig/hl7au/au-fhir-pd/StructureDefinition-au-pd-healthcareservice-examples.html
FHIR version to 4.0.1
PD version 2.1.0
Add publisher
Currently all identifier slices are optional across all resources which makes it difficult for matching.
It has been suggested by the SMTWG that at least one identifier slice is mandatory across all profiles:
AU PD Healthcare Service
AU PD Location
AU PD Organisation
AU PD Practitioner
AU PD Practitioner Role
AU PD Secure Messaging Endpoint
However, not being prescriptive on which one it is and publishers can choose.
In discussing an approach for #36 with @brettesler-ext, @jakubsielewicz, @udaychandrupatla and @adp-adha it became apparent that there are a range of issues related to how identifiers are defined across most of the PD profiles. The decision was made to address this clean up first prior to making the changes for #36 - as a separate job lot.
The issues are
pattern:type
type.coding.system
- should be the AU CodeSystem http://terminology.hl7.org.au/CodeSystem/v2-0203
VDI
in the AU Base CodeSystem is incorrect - see ticket hl7au/au-fhir-base#808pattern:type
pattern:type
(see #35)AU PD Secure Messaging Endpoint
pattern:type
Update Organisation, Practitioner and Endpoint:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.