Profile: PlannetEndpoint Parent: Endpoint Id: plannet-Endpoint Title: "Plan-Net Endpoint" Description: "The technical details of an endpoint that can be used for electronic services, such as a portal or FHIR REST services, messaging or operations, or DIRECT messaging." // * meta.lastUpdated 1..1 * extension contains EndpointUsecase named endpoint-usecase 0..* MS * extension[endpoint-usecase] ^short = "Endpoint Usecase" * status 1..1 MS * status = #active (exactly) * connectionType MS * connectionType from EndpointConnectionTypeVS (extensible) * connectionType ^binding.extension[0].url = $MinValueSet * connectionType ^binding.extension[0].valueCanonical = $MinEndpointConnectionTypeVS * name MS * managingOrganization only Reference(PlannetOrganization) * managingOrganization MS * contact MS * contact.value MS * contact.system MS * payloadType 1..1 MS * payloadType from EndpointPayloadTypeVS (extensible) * payloadMimeType MS * address MS /* Changes on 9/17 # Endpoint *** Changed status 1..1 MS *** Deleted * identifier.id MS * identifier.use MS * identifier.system MS * identifier.type MS * identifier.value MS * identifier.period MS * identifier.assigner MS * contact.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* MS and ViaIntermediary named via-intermediary 0..* MS * contact.extension[via-intermediary] ^short = "Via Intermediary" * period MS * header MS * contact.use MS * contact.rank MS * contact.period MS # HealthCareService *** Changed active 1..1 MS *** Deleted 9/17 * identifier.id MS * identifier.use MS * identifier.system MS * identifier.period MS * identifier.assigner MS * extraDetails MS * photo MS * telecom.rank MS * telecom.use MS * telecom.period MS # InsurancePlan *** Changed * obeys network-or-plan-Network *** Deleted 9/17 * identifier.period MS * identifier.id MS * identifier.use MS * identifier.system MS * contact.name.use MS * contact.name.family MS * contact.name.given MS * contact.name.prefix MS * contact.name.suffix MS * contact.name.period MS * contact.telecom.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* MS and ViaIntermediary named via-intermediary 0..* MS * contact.telecom.extension[via-intermediary] ^short = "Via Intermediary" * contact.telecom.use MS * contact.telecom.period MS # Location *** Changed *** Deleted 9/17 * identifier.id MS * identifier.use MS * identifier.system MS * identifier.period MS * identifier.assigner MS * telecom.rank MS * telecom.use MS * telecom.period MS */ Profile: PlannetHealthcareService Parent: HealthcareService Id: plannet-HealthcareService Title: "Plan-Net HealthcareService" Description: "The HealthCareService resource typically describes services offered by an organization/practitioner at a location. The resource may be used to encompass a variety of services covering the entire healthcare spectrum, including promotion, prevention, diagnostics, pharmacy, hospital and ambulatory care, home care, long-term care, and other health-related and community services." // * meta.lastUpdated 1..1 * extension contains NewPatients named newpatients 0..* MS and DeliveryMethod named deliverymethod 0..* MS * extension[newpatients] ^short = "New Patients" * extension[deliverymethod] ^short = "Delivery Method" * identifier.type MS * identifier.value MS * active 1..1 MS * active = true * providedBy only Reference(PlannetOrganization) * providedBy MS * category ^slicing.discriminator.type = #value * category ^slicing.discriminator.path = "$this" * category ^slicing.rules = #open * category ^slicing.ordered = false // can be omitted, since false is the default * category ^slicing.description = "Slice based on $this value" * category 1..* MS * category contains plan-net-category 0..1 MS * category[plan-net-category] from HealthcareServiceCategoryVS (required) * type MS * type from HealthcareServiceTypeVS (extensible) * specialty MS * specialty from SpecialtiesVS (required) * location only Reference(PlannetLocation) * location MS * name MS * comment MS * telecom MS * telecom.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* MS and ViaIntermediary named via-intermediary 0..* MS * telecom.extension[via-intermediary] ^short = "Via Intermediary" * telecom.system MS * telecom.value MS * coverageArea only Reference(PlannetLocation) * coverageArea MS // * serviceProvisionCode MS // eligibility MS // program //* characteristic MS //* referralMethod MS * appointmentRequired MS * availableTime MS * availableTime.daysOfWeek MS * availableTime.allDay MS * availableTime.availableStartTime MS * availableTime.availableEndTime MS * notAvailable MS * notAvailable.description MS * notAvailable.during MS * availabilityExceptions MS * endpoint only Reference(PlannetEndpoint) * endpoint MS Profile: PlannetInsurancePlan Parent: InsurancePlan Id: plannet-InsurancePlan Title: "Plan-Net InsurancePlan" Description: "An InsurancePlan is a discrete package of health insurance coverage benefits that are offered under a particular network type. A given payer’s products typically differ by network type and/or covered benefits. A plan pairs a product’s covered benefits with the particular cost sharing structure offered to a consumer. A given product may comprise multiple plans (i.e. each plan offers different cost sharing requirements for the same set of covered benefits). InsurancePlan describes a health insurance offering comprised of a list of covered benefits (i.e. the product), costs associated with those benefits (i.e. the plan), and additional information about the offering, such as who it is owned and administered by, a coverage area, contact information, etc." * obeys network-or-plan-Network * obeys plan-type-is-distinct // * meta.lastUpdated 1..1 * identifier.type MS * identifier.value MS * identifier.assigner MS * status 1..1 MS * status = #active (exactly) * type 1..1 MS * type from InsuranceProductTypeVS (extensible) * type ^short = "Product Type" * name MS * alias MS * ownedBy 1..1 MS * ownedBy only Reference(PlannetOrganization) * administeredBy 1..1 MS * administeredBy only Reference(PlannetOrganization) * coverageArea only Reference(PlannetLocation) * coverageArea MS * contact MS * contact.name MS * contact.name.text MS * contact.telecom MS * contact.telecom.value MS * contact.telecom.system MS * endpoint only Reference(PlannetEndpoint) * endpoint MS * network only Reference(PlannetNetwork) * network MS * plan ^short = "Cost sharing details for the plan" * plan.type from InsurancePlanTypeVS (extensible) * plan.type MS * plan.type ^short = "Categorization of the cost sharing for the plan" * plan.coverageArea only Reference(PlannetLocation) * plan.coverageArea MS * plan.network only Reference(PlannetNetwork) * period MS // Jira ticket FHIR-33206 - SMM Profile: PlannetLocation Parent: $USCoreLocation Id: plannet-Location Title: "Plan-Net Location" Description: "A Location is the physical place where healthcare services are provided, practitioners are employed, organizations are based, etc. Locations can range in scope from a room in a building to a geographic region/area." // * meta.lastUpdated 1..1 * extension contains NewPatients named newpatients 0..* MS and Accessibility named accessibility 0..* MS and $R4GeoJSONExtension named region 0..1 MS * extension[newpatients] ^short = "New Patients" * extension[accessibility] ^short = "Accessibility" * extension[region] ^short = "Associated Region (GeoJSON)" * identifier.type MS * identifier.value MS * status 1..1 MS * status = $LocationStatus#active (exactly) * alias MS * description MS * mode 0..0 * type MS * telecom MS * telecom.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* MS and ViaIntermediary named via-intermediary 0..* MS * telecom.extension[via-intermediary] ^short = "Via Intermediary" * telecom.system MS * telecom.value MS * position MS * managingOrganization 0..1 MS * managingOrganization only Reference(PlannetOrganization) * partOf 0..1 MS * partOf only Reference(PlannetLocation) * hoursOfOperation MS * hoursOfOperation.daysOfWeek MS * hoursOfOperation.allDay MS * hoursOfOperation.openingTime MS * hoursOfOperation.closingTime MS * availabilityExceptions MS * endpoint MS * endpoint only Reference(PlannetEndpoint) /* Network -- deleted * identifier.id MS * identifier.use MS * identifier.system MS * identifier.period MS * identifier.assigner MS * alias MS * contact.name.use MS * contact.name.text MS * contact.name.family MS * contact.name.given MS * contact.name.prefix MS * contact.name.suffix MS * contact.name.period MS * contact.telecom.use MS * contact.telecom.period MS * contact.telecom extensions -- not MS */ Profile: PlannetNetwork Parent: $USCoreOrganization //Organization Id: plannet-Network Title: "Plan-Net Network" Description: "A Network refers to a healthcare provider insurance network. A healthcare provider insurance network is an aggregation of organizations and individuals that deliver a set of services across a geography through health insurance products/plans. A network is typically owned by a payer. In the PlanNet IG, individuals and organizations are represented as participants in a PLan-Net Network through the practitionerRole and Plan-Net-organizationAffiliation resources, respectively." // * meta.lastUpdated 1..1 * extension contains LocationReference named location-reference 0..* MS * extension[location-reference] ^short = "Network coverage area" * identifier.type MS * identifier.value MS * active 1..1 MS * active = true (exactly) * type from NetworkTypeVS (required) * type 1..1 MS * name MS * telecom 0..0 * address 0..* MS * partOf 1..1 MS * partOf only Reference(PlannetOrganization) * partOf ^short = "The organization that manages this network" * contact MS * contact.name MS * contact.telecom MS * contact.telecom.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* and ViaIntermediary named via-intermediary 0..* * contact.telecom.extension[via-intermediary] ^short = "Via Intermediary" * contact.telecom.value MS * contact.telecom.system MS * endpoint only Reference(PlannetEndpoint) * endpoint MS /* Organizaiton * identifier.id MS * identifier.use MS * identifier.system MS * identifier.period MS * identifier.assigner MS * alias MS * address.use MS * address.period MS * telecom.use MS * telecom.period MS */ Profile: PlannetOrganization Parent: $USCoreOrganization Id: plannet-Organization Title: "Plan-Net Organization" Description: "An organization is a formal or informal grouping of people or organizations with a common purpose, such as a company, institution, corporation, community group, or healthcare practice. Guidance: When the contact is a department name, rather than a human (e.g., patient help line), include a blank family and given name, and provide the department name in contact.name.text" // * meta.lastUpdated 1..1 * extension contains Qualification named qualification 0..* MS and OrgDescription named org-description 0..1 MS and OrgPeriod named org-period 0..1 MS * extension[qualification].extension[code].value[x] from SpecialtyAndDegreeLicenseCertificateVS (extensible) * extension[qualification] ^short = "Qualification" * extension[org-description] ^short = "Organization Description" * identifier.type MS * identifier.value MS * active 1..1 MS * active = true * name MS * partOf MS * partOf only Reference(PlannetOrganization) * address 1..* MS * address.extension contains $GeolocationExtension named geolocation 0..1 MS * address.type MS * address.text MS * address.line MS * address.city MS * address.state MS * address.postalCode MS * address.country MS * contact MS * contact.telecom MS * contact.telecom.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* and ViaIntermediary named via-intermediary 0..* * contact.telecom.extension[via-intermediary] ^short = "Via Intermediary" * contact.telecom.value MS * contact.telecom.system MS * contact.telecom.use MS * telecom MS * telecom.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* MS and ViaIntermediary named via-intermediary 0..* MS * telecom.extension[via-intermediary] ^short = "Via Intermediary" * telecom.system MS * telecom.value MS * telecom.rank MS * type 1..* MS * type from OrgTypeVS (extensible) * endpoint MS /* OrgAffiliation * identifier.id MS * identifier.use MS * identifier.system MS * identifier.period MS * identifier.assigner MS * period MS * telecom.use MS * telecom.period MS */ Profile: PlannetOrganizationAffiliation Parent: OrganizationAffiliation Id: plannet-OrganizationAffiliation Title: "Plan-Net OrganizationAffiliation" Description: "The OrganizationAffiliation resource describes relationships between two or more organizations, including the services one organization provides another, the location(s) where they provide services, the availability of those services, electronic endpoints, and other relevant information." // * meta.lastUpdated 1..1 * obeys organization-or-participatingOrganization * extension contains Qualification named qualification 0..* * extension[qualification].extension[code].value[x] from SpecialtyAndDegreeLicenseCertificateVS (extensible) * identifier.type MS * identifier.value MS * active 1..1 MS * active = true * period MS //Jira ticket FHIR-33206 SMM * organization MS * organization only Reference (PlannetOrganization) * participatingOrganization MS * participatingOrganization only Reference (PlannetOrganization) * network MS * network only Reference (PlannetNetwork) * code MS * code from OrganizationAffiliationRoleVS (extensible) * specialty MS * specialty from SpecialtiesVS (required) * location MS * location only Reference (PlannetLocation) * healthcareService MS * healthcareService only Reference (PlannetHealthcareService) * telecom MS * telecom.system MS * telecom.value MS * telecom.rank MS * endpoint MS * endpoint only Reference (PlannetEndpoint) /* Practitioner * identifier.id MS * identifier.use MS * identifier.system MS * identifier.period MS * identifier.assigner MS * name.use MS * name.prefix MS * name.suffix MS * name.period MS * gender MS * photo MS */ Profile: PlannetPractitioner Parent: $USCorePractitioner Id: plannet-Practitioner Title: "Plan-Net Practitioner" Description: "Practitioner is a person who is directly or indirectly involved in the provisioning of healthcare." // * meta.lastUpdated 1..1 * identifier.type MS * identifier.value MS * active 1..1 MS * active = true * name MS * name.text MS * name.family MS * name.given MS * address.extension contains $GeolocationExtension named geolocation 0..1 MS * telecom MS * address MS * telecom.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* and ViaIntermediary named via-intermediary 0..* * telecom.extension[via-intermediary] ^short = "Via Intermediary" * qualification MS * qualification.extension contains PractitionerQualification named practitioner-qualification 0..1 MS * qualification.identifier MS * qualification.code 1..1 MS * qualification.code from IndividualSpecialtyAndDegreeLicenseCertificateVS (extensible) * qualification.issuer MS * qualification.period MS * communication MS * communication.extension contains CommunicationProficiency named communication-proficiency 0..1 MS /* PractitionerRole * identifier.id MS * identifier.use MS * identifier.system MS * identifier.period MS * identifier.assigner MS * telecom.use MS * telecom.period MS */ Profile: PlannetPractitionerRole Parent: USCorePractitionerRoleProfile Id: plannet-PractitionerRole Title: "Plan-Net PractitionerRole" Description: "PractitionerRole typically describes details about a provider. When the provider is a practitioner, there may be a relationship to an organization. A provider renders services to patients at a location. Practitioner participation in healthcare provider insurance networks may be direct or through their role at an organization. PractitionerRole involves either the actual or potential (hence the optionality on Practitioner) of an individual to play this role on behalf of or under the auspices of an organization. The absence of a Practitioner resource does not imply that the Organization itself is playing the role of a Practitioner, instead it implies that that role has been established by the Organization and MAY apply that to a specific Practitioner." // * meta.lastUpdated 1..1 * obeys practitioner-or-organization-or-healthcareservice-or-location * extension contains NewPatients named newpatients 0..* MS and NetworkReference named network-reference 0..1 MS and Qualification named qualification 0..* MS * extension[qualification].extension[code].value[x] from IndividualSpecialtyAndDegreeLicenseCertificateVS (extensible) * extension[newpatients] ^short = "New Patients" * extension[network-reference] ^short = "NetworkReference" * extension[qualification] ^short = "Qualification" * identifier.type MS * identifier.value MS * active 1..1 MS * active = true * period MS * practitioner only Reference(PlannetPractitioner) // 1..1 from USCore * organization only Reference(PlannetOrganization) // 1..1 from USCore * practitioner 0..1 MS // 1..1 from USCore * organization 0..1 MS // 1..1 from USCore * code MS * code from PractitionerRoleVS * specialty MS * specialty from IndividualAndGroupSpecialtiesVS (required) * location only Reference(PlannetLocation) * location MS * healthcareService only Reference(PlannetHealthcareService) * healthcareService MS * telecom MS * telecom.extension contains ContactPointAvailableTime named contactpoint-availabletime 0..* MS and ViaIntermediary named via-intermediary 0..* MS * telecom.extension[via-intermediary] ^short = "Via Intermediary" * telecom.system 1..1 MS * telecom.value 1..1 MS * telecom.rank MS * availableTime MS * availableTime.daysOfWeek MS * availableTime.allDay MS * availableTime.availableStartTime MS * availableTime.availableEndTime MS * notAvailable MS * notAvailable.description MS * notAvailable.during MS * endpoint only Reference(PlannetEndpoint) * endpoint 0..* MS Invariant: practitioner-or-organization-or-healthcareservice-or-location Description: "If PlannetPractitionerRole.practitioner is absent ( PlannetPractitionerRole.organization, PlannetPractitionerRole.healthcareservice, PlannetPractitionerRole.location) must be present" Expression: "practitioner.exists() or (organization.exists() or healthcareService.exists() or location.exists())" Severity: #error Invariant: organization-or-participatingOrganization Description: "PlannetOrganizationAffiliation.organization or PlannetOrganizationAffiliation.participatingOrganization" Expression: "organization.exists() or participatingOrganization.exists()" Severity: #error // New 09/17 Invariant: network-or-plan-Network Description: "If an insuranceplan does not define a network, then each plan must define one" Expression: "network.exists() or plan.network.exists()" Severity: #error //XPath: "f:network or f:plan.network " Invariant: plan-type-is-distinct Description: "Each InsurancePlan.plan should have a distinct plan.type." Expression: "plan.type.coding.code.isDistinct()" Severity: #error