Difference between revisions of "IHE FHIR Profile Publication/Creating new Profiles"

From IHE Wiki
Jump to: navigation, search
(Creating a new ImplementationGuide)
m (Adding resources)
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Creating a new ImplementationGuide =
+
== Getting Started – Using the default content ==
  
 +
These are the steps to create another implementation guide from the base profile. To provide an example, we describe how to change the profile “base” to a new profile called “mmm”. Of course you can use an name as long as the file names match the references.
  
  <ImplementationGuide xmlns="http://hl7.org/fhir">
+
# Copying / renaming implementation guide
    <id value="base" />
+
# Adding pages
    <url value="http://ihe.net/fhir/base" />
+
# Adding resources
     <name value="Base Profile" />
+
 
    <version value="0.2.1" />
+
The details:
    <status value="draft" />
+
 
    <experimental value="false" />
+
 
    <date value="2018-01-01T00:00:00.000+02:00" />
+
== Copying / renaming implementation guide ==
     <jurisdiction>
+
 
         <coding>
+
=== Rename (or copy) the “base” folder to “mmm” ===
            <system value="urn:iso:std:iso:3166" />
+
 
            <code value="US" />
+
=== Rename the file “base.xml” to “mmm.xml”. Compared to the “base” profile, we end up with this: ===
         </coding>
+
 
     </jurisdiction>
+
 
     <packageId value="ihe.fhir.base" />
+
[[File:media/image1.png|222x164px]]
     <license value="Apache-2.0" />
+
 
     <fhirVersion value="3.6.0" />
+
=== Edit the mmm.xml and change the id, url, and optionally name as appropriate: ===
        <definition>
+
 
    <package>
+
Original:
<name value="IHE Base Conformance statements"/>
+
 
<description value="Package"/>
+
  &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
</package>
+
&lt;ImplementationGuide xmlns=&quot;http://hl7.org/fhir&quot;&gt;
<resource>
+
  &lt;id value=&quot;base&quot; /&gt;
<reference>
+
   &lt;url value=&quot;http://ihe.net/fhir/base&quot; /&gt;
<reference value="CapabilityStatement/ihe-base-requestplacer"/>
+
    &lt;name value=&quot;ImplementationGuide5&quot; /&gt;
</reference>
+
    &lt;status value=&quot;draft&quot; /&gt;
<name value="ihe-base-requestplacer"/>
+
 
<description value="Request Placer Specifications"/>
+
...
<package value="Package1"/>
+
 
</resource>
+
Updated:
<resource>
+
 
<reference>
+
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
<reference value="StructureDefinition/medication-request"/>
+
&lt;ImplementationGuide xmlns=&quot;http://hl7.org/fhir&quot;&gt;
</reference>
+
  &lt;id value=&quot;'''mmm'''&quot; /&gt;
<name value="Medication Request"/>
+
  &lt;url value=&quot;http://ihe.net/fhir/mmm&quot; /&gt;
<description value="Medication Request Specifications"/>
+
  &lt;name value=&quot;'''Mobile Medication Management'''&quot; /&gt;
<exampleBoolean value="false"/>
+
  &lt;status value=&quot;draft&quot; /&gt;
<package value="Package1"/>
+
 
</resource>
+
...
<page>
+
 
<nameUrl value="toc.html"/>
+
At this moment you can rebuild to make sure things still work ok.
<title value="Table of Contents"/>
+
 
<generation value="html"/>
+
== Adding pages ==
<page>
+
 
<nameUrl value="index.html"/>
+
You can add pages under the top page, which is the Table of Contents.
<title value="Main Page"/>
+
 
<generation value="html"/>
+
It is recommended to keep page named “index” – you can change the existing index.xml page if you want.
</page>
+
 
<page>
+
=== Add the x(ht)ml file in the content\pagecontent folder, for example a “welcome” page. ===
<nameUrl value="artifacts.html"/>
+
 
<title value="Arifacts"/>
+
<blockquote>[[File:media/image2.png|237x181px]]
<generation value="html"/>
+
</blockquote>
</page>
+
=== Add an entry in the implementationGuide (mmm.xml) to point to the file you added. ===
</page>
+
 
</definition>
+
 
  </ImplementationGuide>
+
&lt;page&gt;
 +
  &lt;nameUrl value=&quot;toc.html&quot; /&gt;
 +
    &lt;title value=&quot;Table of Contents&quot; /&gt;
 +
    &lt;generation value=&quot;html&quot; /&gt;
 +
  &lt;page&gt;
 +
    &lt;nameUrl value=&quot;index.html&quot; /&gt;
 +
    &lt;title value=&quot;Main Page&quot; /&gt;
 +
      &lt;generation value=&quot;html&quot; /&gt;
 +
   &lt;/page&gt;
 +
  &lt;page&gt;
 +
    &lt;nameUrl value=&quot;welcome.html&quot; /&gt;
 +
     &lt;title value=&quot;Welcome Page&quot; /&gt;
 +
   &lt;generation value=&quot;html&quot; /&gt;
 +
   &lt;/page&gt;
 +
  &lt;page&gt;
 +
    &lt;nameUrl value=&quot;artifacts.html&quot; /&gt;
 +
    &lt;title value=&quot;Artifacts&quot; /&gt;
 +
    &lt;generation value=&quot;html&quot; /&gt;
 +
  &lt;/page&gt;
 +
&lt;/page&gt;
 +
 
 +
== Adding resources ==
 +
 
 +
place the resource as an XML file in the content\resources folder.
 +
 
 +
The file must be named according to the convention
 +
 
 +
capabilitystatement-ihe-acr-xxxxxxxx.xml
 +
 
 +
where acr is the profile acronym and xxxxxxxxx is the object - the transaction, the actor, etc.
 +
 
 +
<blockquote>[[File:media/image3.png|402x201px]]
 +
</blockquote>
 +
 
 +
=== place a reference in the implementation guide file (mmm.xml). ===
 +
 
 +
Just add a section like this. Make sure you point to a package that exists in the mmm.xml file.
 +
 
 +
&lt;resource&gt;
 +
  &lt;reference&gt;
 +
  &lt;reference value=&quot;CapabilityStatement/ihe-mmm-requestplacer&quot; /&gt;
 +
  &lt;/reference&gt;
 +
  &lt;name value=&quot;IHE MMM Request placer&quot; /&gt;
 +
  &lt;description value=&quot;Request Placer Specifications&quot; /&gt;
 +
  &lt;package value=&quot;Package1&quot; /&gt;
 +
&lt;/resource&gt;
 +
 
 +
The resulting file:
 +
 
 +
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;
 +
&lt;ImplementationGuide xmlns=&quot;http://hl7.org/fhir&quot;&gt;
 +
    &lt;id value=&quot;base&quot; /&gt;
 +
     &lt;url value=&quot;http://ihe.net/fhir/base&quot; /&gt;
 +
     &lt;name value=&quot;Base Profile&quot; /&gt;
 +
    &lt;version value=&quot;0.2.1&quot; /&gt;
 +
    &lt;status value=&quot;draft&quot; /&gt;
 +
    &lt;experimental value=&quot;false&quot; /&gt;
 +
    &lt;date value=&quot;2018-01-01T00:00:00.000+02:00&quot; /&gt;
 +
      &lt;jurisdiction&gt;
 +
         &lt;coding&gt;
 +
          &lt;system value=&quot;urn:iso:std:iso:3166&quot; /&gt;
 +
          &lt;code value=&quot;US&quot; /&gt;
 +
         &lt;/coding&gt;
 +
     &lt;/jurisdiction&gt;
 +
     &lt;packageId value=&quot;ihe.fhir.base&quot; /&gt;
 +
     &lt;license value=&quot;Apache-2.0&quot; /&gt;
 +
     &lt;fhirVersion value=&quot;3.5.0&quot; /&gt;
 +
    &lt;definition&gt;
 +
        &lt;package&gt;
 +
          &lt;name value=&quot;Package1&quot; /&gt;
 +
          &lt;description value=&quot;Package&quot; /&gt;
 +
        &lt;/package&gt;
 +
        &lt;resource&gt;
 +
          &lt;reference&gt;
 +
              &lt;reference value=&quot;CapabilityStatement/ihe-base-requestplacer&quot; /&gt;
 +
          &lt;/reference&gt;
 +
          &lt;name value=&quot;ihe-base-requestplacer&quot; /&gt;
 +
          &lt;description value=&quot;Request Placer Specifications&quot; /&gt;
 +
          &lt;package value=&quot;Package1&quot; /&gt;
 +
        &lt;/resource&gt;
 +
        &lt;resource&gt;
 +
          &lt;reference&gt;
 +
              &lt;reference value=&quot;StructureDefinition/medication-request&quot; /&gt;
 +
          &lt;/reference&gt;
 +
          &lt;name value=&quot;Medication Request&quot; /&gt;
 +
          &lt;description value=&quot;Medication Request Specifications&quot; /&gt;
 +
          &lt;exampleBoolean value=&quot;false&quot; /&gt;
 +
          &lt;package value=&quot;Package1&quot; /&gt;
 +
        &lt;/resource&gt;
 +
        &lt;page&gt;
 +
          &lt;nameUrl value=&quot;toc.html&quot; /&gt;
 +
          &lt;title value=&quot;Table of Contents&quot; /&gt;
 +
          &lt;generation value=&quot;html&quot; /&gt;
 +
          &lt;page&gt;
 +
              &lt;nameUrl value=&quot;index.html&quot; /&gt;
 +
              &lt;title value=&quot;Main Page&quot; /&gt;
 +
              &lt;generation value=&quot;html&quot; /&gt;
 +
          &lt;/page&gt;
 +
          &lt;page&gt;
 +
              &lt;nameUrl value=&quot;artifacts.html&quot; /&gt;
 +
              &lt;title value=&quot;Artifacts&quot; /&gt;
 +
              &lt;generation value=&quot;html&quot; /&gt;
 +
          &lt;/page&gt;
 +
        &lt;/page&gt;
 +
    &lt;/definition&gt;
 +
  &lt;/ImplementationGuide&gt;

Latest revision as of 12:26, 12 December 2018

Getting Started – Using the default content

These are the steps to create another implementation guide from the base profile. To provide an example, we describe how to change the profile “base” to a new profile called “mmm”. Of course you can use an name as long as the file names match the references.

  1. Copying / renaming implementation guide
  2. Adding pages
  3. Adding resources

The details:


Copying / renaming implementation guide

Rename (or copy) the “base” folder to “mmm”

Rename the file “base.xml” to “mmm.xml”. Compared to the “base” profile, we end up with this:

222x164px

Edit the mmm.xml and change the id, url, and optionally name as appropriate:

Original:

<?xml version="1.0" encoding="utf-16"?>
<ImplementationGuide xmlns="http://hl7.org/fhir%22>
  <id value="base" />
  <url value="http://ihe.net/fhir/base%22 />
   <name value="ImplementationGuide5" />
   <status value="draft" />

...

Updated:

<?xml version="1.0" encoding="utf-16"?>
<ImplementationGuide xmlns="http://hl7.org/fhir%22>
  <id value="mmm" />
  <url value="http://ihe.net/fhir/mmm%22 />
  <name value="Mobile Medication Management" />
  <status value="draft" />

...

At this moment you can rebuild to make sure things still work ok.

Adding pages

You can add pages under the top page, which is the Table of Contents.

It is recommended to keep page named “index” – you can change the existing index.xml page if you want.

Add the x(ht)ml file in the content\pagecontent folder, for example a “welcome” page.

237x181px

Add an entry in the implementationGuide (mmm.xml) to point to the file you added.

<page>
  <nameUrl value="toc.html" />
    <title value="Table of Contents" />
    <generation value="html" />
  <page>
    <nameUrl value="index.html" />
    <title value="Main Page" />
    <generation value="html" />
  </page>
  <page>
    <nameUrl value="welcome.html" />
    <title value="Welcome Page" />
   <generation value="html" />
  </page>
  <page>
    <nameUrl value="artifacts.html" />
    <title value="Artifacts" />
    <generation value="html" />
  </page>
</page>

Adding resources

place the resource as an XML file in the content\resources folder.

The file must be named according to the convention

capabilitystatement-ihe-acr-xxxxxxxx.xml

where acr is the profile acronym and xxxxxxxxx is the object - the transaction, the actor, etc.

402x201px

place a reference in the implementation guide file (mmm.xml).

Just add a section like this. Make sure you point to a package that exists in the mmm.xml file.

<resource>
  <reference>
  <reference value="CapabilityStatement/ihe-mmm-requestplacer" />
  </reference>
  <name value="IHE MMM Request placer" />
  <description value="Request Placer Specifications" />
  <package value="Package1" />
</resource>

The resulting file:

<?xml version="1.0" encoding="utf-16"?>
<ImplementationGuide xmlns="http://hl7.org/fhir%22>
    <id value="base" />
    <url value="http://ihe.net/fhir/base%22 />
    <name value="Base Profile" />
    <version value="0.2.1" />
    <status value="draft" />
    <experimental value="false" />
    <date value="2018-01-01T00:00:00.000+02:00" />
    <jurisdiction>
       <coding>
          <system value="urn:iso:std:iso:3166%22 />
          <code value="US" />
       </coding>
   </jurisdiction>
   <packageId value="ihe.fhir.base" />
   <license value="Apache-2.0" />
   <fhirVersion value="3.5.0" />
   <definition>
       <package>
          <name value="Package1" />
          <description value="Package" />
       </package>
       <resource>
          <reference>
              <reference value="CapabilityStatement/ihe-base-requestplacer" />
          </reference>
          <name value="ihe-base-requestplacer" />
          <description value="Request Placer Specifications" />
          <package value="Package1" />
       </resource>
       <resource>
          <reference>
              <reference value="StructureDefinition/medication-request" />
          </reference>
          <name value="Medication Request" />
          <description value="Medication Request Specifications" />
          <exampleBoolean value="false" />
          <package value="Package1" />
       </resource>
       <page>
          <nameUrl value="toc.html" />
          <title value="Table of Contents" />
          <generation value="html" />
          <page>
              <nameUrl value="index.html" />
              <title value="Main Page" />
              <generation value="html" />
          </page>
          <page>
              <nameUrl value="artifacts.html" />
              <title value="Artifacts" />
              <generation value="html" />
          </page>
       </page>
   </definition>
</ImplementationGuide>