Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/fhirfield_only'
Browse files Browse the repository at this point in the history
* origin/fhirfield_only:
  FHIRFieldIndex related patch, classes are removed. Issue #23 isuue #24 * Now FhirField accepts fhir_version and it is required * accept custom mapping.
  • Loading branch information
nazrulworld committed Nov 10, 2019
2 parents f634407 + acfba86 commit e17bff8
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 5 deletions.
1 change: 1 addition & 0 deletions src/plone/app/fhirfield/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
def initialize(context):
""" """
import pkg_resources

import logging

log = logging.getLogger("plone.app.fhirfield")
Expand Down
1 change: 0 additions & 1 deletion src/plone/app/fhirfield/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
xmlns:five="http://namespaces.zope.org/five"
i18n_domain="plone.app.fhirfield">

<five:registerPackage package="." initialize=".initialize" />
<i18n:registerTranslations directory="locales" />

<include package=".browser" />
Expand Down
16 changes: 14 additions & 2 deletions src/plone/app/fhirfield/field.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
import sys

import six

from fhir.resources.STU3.fhirabstractbase import FHIRValidationError
from fhirpath.enums import FHIR_VERSION
from plone import api
from plone.app.fhirfield.compat import _
from plone.app.fhirfield.helpers import import_string
Expand Down Expand Up @@ -46,7 +46,9 @@ class FhirResource(Object):

_type = FhirResourceValue

def __init__(self, model=None, resource_type=None, model_interface=None, **kw):
def __init__(
self, fhir_version, model=None, resource_type=None, model_interface=None, **kw
):
"""
:arg model: dotted path of FHIR Model class
Expand All @@ -60,6 +62,8 @@ def __init__(self, model=None, resource_type=None, model_interface=None, **kw):
self.resource_type = resource_type
self.model_interface = model_interface
self.validate_invariants = kw.pop("validate_invariants", False)
self._index_mapping = kw.pop("mapping", None)
self._fhir_version = FHIR_VERSION[fhir_version]

self._init_validate()

Expand Down Expand Up @@ -103,6 +107,14 @@ def get_resource_type(self):
else:
raise NotImplementedError

def get_fhir_version(self):
""" """
return self._fhir_version

def get_mapping(self):
""" """
return self._index_mapping

def _init_validate(self):
""" """
if self.resource_type and self.model is not None:
Expand Down
4 changes: 2 additions & 2 deletions src/plone/app/fhirfield/indexes/es/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@
import pkg_resources

from collective.elasticsearch.indexes import INDEX_MAPPING as CIM

from collective.elasticsearch.mapping import MappingAdapter
from collective.elasticsearch.query import QueryAssembler
from plone.app.fhirfield.indexes.PluginIndexes import FhirFieldIndex
from plone.app.fhirfield.variables import FHIR_RESOURCE_LIST # noqa: F401
from plone.registry.interfaces import IRegistry
from zope.component import getUtility

from .fhir import EsFhirFieldIndex
from .helpers import build_elasticsearch_sortable


Expand All @@ -30,6 +29,7 @@
CIM.update(INDEX_MAPPING)



def QueryAssembler_normalize(self, query):
""" """
sort_on = []
Expand Down
3 changes: 3 additions & 0 deletions src/plone/app/fhirfield/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from zope.interface import Attribute
from zope.interface import Interface
from zope.schema.interfaces import IObject
from plone.schema import JSONField


class IFhirResourceModel(Interface):
Expand All @@ -30,6 +31,8 @@ class IFhirResource(IObject):
title=_("FHIR Resource Model from fhirclient"), required=False
)
model_interface = zs.DottedName(title=_("FHIR Model Interface"), required=False)
fhir_version = zs.TextLine(title="FHIR Version(Release)", required=True)
mapping = JSONField(title=_("Index Mapping"), required=False)

def from_dict(dict_value):
""" """
Expand Down

0 comments on commit e17bff8

Please sign in to comment.