HL7 Slice and Cardinality

Hello everyone,

Im quite new in Health IT and i need a implementation like below, is it possible doing with FHIR forge ?

  • İd
    …Hospital İd
    …Passport İd
    …National id

id is my element and its mandatory, i sliced it with 3 different child item.
Hospital id is required but Passport and National id isn’t clear and just one of them will bi required how can i show it in hl7 json format.

Thanks for every comment,

I presume you mean “identifier”, not “id”. “id” can’t repeat and is equivalent to the ‘primary key’ for that record on the server. So long as we’re talking about “identifier”, then yes, you could slice by identifier.system and/or identifier.type and set different cardinality expectations for each slice. Passport numbers for each country have a distinct system and every hospital will have its own system. The national id for a single country will have a single system, however if you’re dealing with multiple countries, then there’ll be a distinct system for each. So your best bet is to discriminate by identifier.type.

Thanks lloyd its really grateful,

Yes its definitely element “identifier” not id thanks for correction too,

i sliced a element to 3 type one of them cardinality is 11 and other two are 01 so in that scenario, EMR will send me required type but other two which is 01 not required, will not sent by EMR or can sent, but my business rule wants one of them of 01 should be required but not clear which one , that turn my scenario to 1 required type and 1 other type. i hope in picture its more clear, is ist possible doing this.

To clarify, you want to say that MRN is mandatory (and there can’t be more than one MRN) and that at least one of passport, national or personal number must also be sent? Is that accurate?

Thanks lloyd
Definitely yes

Hi @msimsek, I believe you can do that by creating an invariant on identifier which would state that at least one of the two needs to exist. Perhaps something like:

('http://fhir.nl/fhir/NamingSystem/bsn' in Patient.identifier.system) or ('urn:oid:2.16.840.1.113883.' in Patient.identifier.system)

You can test the FHIRPath expression here: PathFhinder (ylboerner.github.io)