UML — fhir-harness

Generated by cat-harness-tools/scripts/gen-uml-overview.ts — do not edit. Every named sub-graph the fhir-harness instance declares, one box each, with the node schema kinds found in it.

Sources (same model): PlantUML · Mermaid · Graphviz DOT

Layout
UML class diagram of fhir-harness: one package per named sub-graph, one class per node schema, with its data fields. Portrait layout.
UML class diagram of fhir-harness: one package per named sub-graph, one class per node schema, with its data fields. Landscape layout.

The interactive view lays this diagram out in your browser with Graphviz, and needs JavaScript. Without it, pick Portrait or Landscape, or read the DOT source.

sub-graphdirectorygraph typologiesnode schemanodescohesioninout
fhir-harness/fhir-harness-translationsfhir-harness/translationstranslation-sourcesTranslationConfigSchemanot measured
fhir-harness/fhir-harness-validatorsfhir-harness/validatorsvalidatorsValidatorNodeSchemanot measured
fhir-harness/fhir-harness-typologiesfhir-harness/typologiestypologiesGraphTypologyNodeSchemanot measured
fhir-harness/libraryfhir-harness/librarylibraryImagesSidecarSchema; KeywordsFileSchemanot measured
fhir-harness/fhir-ig-skillsfhir-harness/skillsskillsskills: could not determinenot measured
fhir-harness/fhir-ig-toolsfhir-harness/toolstoolsToolDefinitionSchemanot measured
fhir-harness/fhir-ig-scriptsfhir-harness/scriptscodecode: could not determinenot measured
fhir-harness/fhir-harness-pipeline-pluginsfhir-harness/pipeline-pluginspipeline-pluginsPipelinePluginNodeSchemanot measured
fhir-harness/fhir-harness-plugin-slotsfhir-harness/pipelinecodecode: could not determinenot measured
fhir-harness/fhir-harness-processesfhir-harness/processesprocessesext: omg-bpmn-2.0not measured
fhir-harness/qafhir-harness/test/resultsqats: QaResultnot measured

Nodes, cohesion, in and out are the detangler’s pinned measurements for the same directory (bun run cat kg:detangle; skill graph-detanglement). Not measured means the detangler does not scan that directory, not that it has no edges.

Sub-graphs

The same model, drawn by Mermaid

Kept so the page renders even where the PlantUML image is missing, and because Mermaid nodes carry the CSS class that colours them from uml.css.

classDiagram
  direction LR
  namespace fhir_harness__fhir_harness_translations {
    class fhir_harness_fhir_harness_translations_TranslationConfig["TranslationConfig"] {
      <<json: TranslationConfigSchema>>
      defaultLocale [0..1] string
      supportedLocales [0..*] string[]
      translationDir [0..1] string
      potGranularity [0..1] block | chapter | folio
      officialRequired [0..1] boolean
    }
  }
  namespace fhir_harness__fhir_harness_validators {
    class fhir_harness_fhir_harness_validators_folio_validator_v1_folio_validator_v1["folio-validator/v1"] {
      <<json: ValidatorNodeSchema>>
      $schema [1] 'folio-validator/v1'
      id [1] string
      validates [1] object
      schema [1] string
      pages [0..1] string
      rationale [0..1] string
    }
  }
  namespace fhir_harness__fhir_harness_typologies {
    class fhir_harness_fhir_harness_typologies_folio_graph_typology_v1_folio_graph_typology_v1["folio-graph-typology/v1"] {
      <<json: GraphTypologyNodeSchema>>
      $schema [1] 'folio-graph-typology/v1'
      kind [1] string
      title [0..1] string
      layer [0..1] 'core'
      perInstance [0..1] true
      newInstanceSource [0..1] object
      renderable [1] boolean
      recordsWork [0..1] boolean
      holds [1] content | context | state | derived
      summary [1] string
      schema [0..1] string
      validator [0..1] string
      validatorNotApplicable [0..1] string
      nodeSchemas [0..1] map~object~
      declarationFile [0..1] string
      concernGroups [0..1] true
      within [0..1] string
      avatar [0..1] object
      tileIcon [0..1] string
      published [0..1] false
      skillBearing [0..1] true
      kgContent [0..1] true
      description [0..1] string
      renderableNote [0..1] string
      anyLayer [0..1] true
      rationale [0..1] string
    }
  }
  namespace fhir_harness__library {
    class fhir_harness_library_folio_document_images_v1_folio_document_images_v1["folio-document-images/v1"] {
      <<json: ImagesSidecarSchema>>
      $schema [1] 'folio-document-images/v1'
      doc_id [1] string
      images [1] object[] | null
      undetermined_reason [0..1] string
    }
    class fhir_harness_library_folio_keywords_v1_Document["Document"] {
      <<json: KeywordsFileSchema>>
      term [1] string
      score [1] number
      evidence [0..*] heading[]
    }
    class fhir_harness_library_folio_keywords_v1_folio_keywords_v1["folio-keywords/v1"] {
      <<json: KeywordsFileSchema>>
      $schema [1] 'folio-keywords/v1'
      entry [1] string
      corpus [1] object
      document [0..*] Document[]
      sections [1] map~object[]~
    }
  }
  namespace fhir_harness__fhir_ig_skills {
    class n_fhir_harness_fhir_ig_skills_skills["skills: no node schema"] {
      <<could not determine>>
    }
  }
  namespace fhir_harness__fhir_ig_tools {
    class fhir_harness_fhir_ig_tools_Remedy["Remedy"] {
      <<json: ToolDefinitionSchema>>
      host [1] string
      error [0..1] string
      tool [0..1] string
      none [0..1] string
    }
    class fhir_harness_fhir_ig_tools_Maintain["Maintain"] {
      <<json: ToolDefinitionSchema>>
      source [1] string
      artefact [1] string
      format [0..1] string
    }
    class fhir_harness_fhir_ig_tools_ToolDefinition["ToolDefinition"] {
      <<json: ToolDefinitionSchema>>
      id [1] string
      title [1] string
      description [1] string
      install [1] object
      invoke [1] object
      io [1] object
      satisfies [1..*] string[]
      selection [0..1] object
      requires [0..1] object
      remedies [0..*] Remedy[]
      maintains [0..*] Maintain[]
      downstream [0..1] object
      renders [0..*] string[]
      subprocesses [0..*] string[]
    }
  }
  namespace fhir_harness__fhir_ig_scripts {
    class n_fhir_harness_fhir_ig_scripts_code["code: no node schema"] {
      <<could not determine>>
    }
  }
  namespace fhir_harness__fhir_harness_pipeline_plugins {
    class fhir_harness_fhir_harness_pipeline_plugins_folio_pipeline_plugin_v1_folio_pipeline_plugin_v1["folio-pipeline-plugin/v1"] {
      <<json: PipelinePluginNodeSchema>>
      $schema [1] 'folio-pipeline-plugin/v1'
      slot [1] string
      implementation [1] string
      rationale [0..1] string
    }
  }
  namespace fhir_harness__fhir_harness_plugin_slots {
    class n_fhir_harness_fhir_harness_plugin_slots_code["code: no node schema"] {
      <<could not determine>>
    }
  }
  namespace fhir_harness__fhir_harness_processes {
    class fhir_harness_fhir_harness_processes_omg_bpmn_2_0["Business Process Model and Notation (BPMN)"] {
      <<ext: omg-bpmn-2.0>>
      bpmn:callActivity [0..*] element
      bpmn:collaboration [0..*] element
      bpmn:definitions [0..*] element
      bpmn:documentation [0..*] element
      bpmn:endEvent [0..*] element
      bpmn:exclusiveGateway [0..*] element
      bpmn:extensionElements [0..*] element
      bpmn:flowNodeRef [0..*] element
      bpmn:import [0..*] element
      bpmn:incoming [0..*] element
      bpmn:lane [0..*] element
      bpmn:laneSet [0..*] element
      bpmn:outgoing [0..*] element
      bpmn:parallelGateway [0..*] element
      bpmn:participant [0..*] element
      bpmn:process [0..*] element
      bpmn:resource [0..*] element
      bpmn:sequenceFlow [0..*] element
      bpmn:serviceTask [0..*] element
      bpmn:startEvent [0..*] element
      bpmn:task [0..*] element
      bpmn:timerEventDefinition [0..*] element
      bpmn:userTask [0..*] element
    }
  }
  namespace fhir_harness__qa {
    class fhir_harness_qa_qa_results_v1["qa-results/v1"] {
      <<ts: QaResult>>
      $schema [1] 'qa-results/v1'
      producer [1]  /** Repo-relative path to the script. */ script: string; /** 12-char SHA-256 prefix of that script's source, as `script-qa` writes. */ script_hash: string; 
      subject [1]  kind: string; id: string 
      families [1] Record~string, QaResultFamily~
      total [1] number
    }
  }
  cssClass "fhir_harness_fhir_harness_translations_TranslationConfig" fa_uml_kind_translation_sources
  cssClass "fhir_harness_fhir_harness_validators_folio_validator_v1_folio_validator_v1" fa_uml_kind_validators
  cssClass "fhir_harness_fhir_harness_typologies_folio_graph_typology_v1_folio_graph_typology_v1" fa_uml_kind_typologies
  fhir_harness_library_folio_keywords_v1_folio_keywords_v1 *-- "0..*" fhir_harness_library_folio_keywords_v1_Document : document
  cssClass "fhir_harness_library_folio_document_images_v1_folio_document_images_v1" fa_uml_kind_library
  cssClass "fhir_harness_library_folio_keywords_v1_Document" fa_uml_kind_library
  cssClass "fhir_harness_library_folio_keywords_v1_folio_keywords_v1" fa_uml_kind_library
  cssClass "n_fhir_harness_fhir_ig_skills_skills" fa_uml_kind_skills
  cssClass "n_fhir_harness_fhir_ig_skills_skills" fa_uml_undetermined
  fhir_harness_fhir_ig_tools_ToolDefinition *-- "0..*" fhir_harness_fhir_ig_tools_Remedy : remedies
  fhir_harness_fhir_ig_tools_ToolDefinition *-- "0..*" fhir_harness_fhir_ig_tools_Maintain : maintains
  cssClass "fhir_harness_fhir_ig_tools_Remedy" fa_uml_kind_tools
  cssClass "fhir_harness_fhir_ig_tools_Maintain" fa_uml_kind_tools
  cssClass "fhir_harness_fhir_ig_tools_ToolDefinition" fa_uml_kind_tools
  cssClass "n_fhir_harness_fhir_ig_scripts_code" fa_uml_kind_code
  cssClass "n_fhir_harness_fhir_ig_scripts_code" fa_uml_undetermined
  cssClass "fhir_harness_fhir_harness_pipeline_plugins_folio_pipeline_plugin_v1_folio_pipeline_plugin_v1" fa_uml_kind_pipeline_plugins
  cssClass "n_fhir_harness_fhir_harness_plugin_slots_code" fa_uml_kind_code
  cssClass "n_fhir_harness_fhir_harness_plugin_slots_code" fa_uml_undetermined
  cssClass "fhir_harness_fhir_harness_processes_omg_bpmn_2_0" fa_uml_kind_processes
  cssClass "fhir_harness_qa_qa_results_v1" fa_uml_kind_qa

folio-assistant — code under the Apache License 2.0, documentation under CC BY 3.0. Generated schema and API references are rebuilt from source on every push to main.

deployed dev