当前位置: 首页>>代码示例>>Python>>正文


Python CommCareCase.get_by_xform_id方法代码示例

本文整理汇总了Python中casexml.apps.case.models.CommCareCase.get_by_xform_id方法的典型用法代码示例。如果您正苦于以下问题:Python CommCareCase.get_by_xform_id方法的具体用法?Python CommCareCase.get_by_xform_id怎么用?Python CommCareCase.get_by_xform_id使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在casexml.apps.case.models.CommCareCase的用法示例。


在下文中一共展示了CommCareCase.get_by_xform_id方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: lookup_cbo_id_from_form_id

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
def lookup_cbo_id_from_form_id(form_id):
    case = CommCareCase.get_by_xform_id(form_id).first()
    group = Group.by_user(case.user_id).one()

    # if the id doesn't belong to a user, maybe its a group?
    if not group:
        group = Group.get(case.user_id)

    return group.get_id
开发者ID:dimagi,项目名称:care-sa-reports,代码行数:11,代码来源:models.py

示例2: get_payload

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
 def get_payload(self, repeat_record):
     form = XFormInstance.get(repeat_record.payload_id)
     cases = CommCareCase.get_by_xform_id(form.get_id)
     return json.dumps(
         {
             "form_id": form._id,
             "received_on": json_format_datetime(form.received_on),
             "case_ids": [case._id for case in cases],
         }
     )
开发者ID:nikhilvarma22,项目名称:commcare-hq,代码行数:12,代码来源:models.py

示例3: get_payload

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
    def get_payload(self, repeat_record, form):
        logger.debug('DHIS2: Form domain "%s" XMLNS "%s"', form['domain'], form['xmlns'])
        if form['xmlns'] not in (REGISTER_CHILD_XMLNS, GROWTH_MONITORING_XMLNS, RISK_ASSESSMENT_XMLNS):
            # This is not a form we care about
            raise IgnoreDocument

        from casexml.apps.case.models import CommCareCase

        settings = Dhis2Settings.for_domain(form['domain'])
        dhis2_api = Dhis2Api(settings.dhis2['host'], settings.dhis2['username'], settings.dhis2['password'],
                             settings.dhis2['top_org_unit_name'])
        cases = CommCareCase.get_by_xform_id(form.get_id)
        case = next(c for c in cases.iterator() if c.type == CASE_TYPE)
        event = None

        if form['xmlns'] == REGISTER_CHILD_XMLNS:
            # Create a DHIS2 tracked entity instance from the form's case and
            # enroll in the nutrition assessment programme.
            logger.debug('DHIS2: Processing Register Child form')
            push_case(case, dhis2_api)
            #  We just need to enroll. No event to create
            raise IgnoreDocument

        elif form['xmlns'] == GROWTH_MONITORING_XMLNS:
            logger.debug('DHIS2: Processing Growth Monitoring form')
            if not getattr(case, 'external_id', None):
                logger.info('Register Child form must be processed before Growth Monitoring form')
                return  # Try again later
            self._update_instance(dhis2_api, case)
            # Create a paediatric nutrition assessment event.
            program_id = dhis2_api.get_program_id('Paediatric Nutrition Assessment')
            program_stage_id = dhis2_api.get_program_stage_id('Nutrition Assessment')
            event = dhis2_api.form_to_event(program_id, form, NUTRITION_ASSESSMENT_EVENT_FIELDS, program_stage_id,
                                            case['external_id'])

        elif form['xmlns'] == RISK_ASSESSMENT_XMLNS:
            logger.debug('DHIS2: Processing Risk Assessment form')
            if not getattr(case, 'external_id', None):
                logger.info('Register Child form must be processed before Risk Assessment form')
                return  # Try again later
            self._update_instance(dhis2_api, case)
            # Check whether the case needs to be enrolled in the Risk Assessment Program
            program_id = dhis2_api.get_program_id('Underlying Risk Assessment')
            if not dhis2_api.enrolled_in(case['external_id'], 'Underlying Risk Assessment'):
                today = json_format_date(date.today())
                program_data = {dhis2_attr: case[cchq_attr]
                                for cchq_attr, dhis2_attr in RISK_ASSESSMENT_PROGRAM_FIELDS.iteritems()}
                dhis2_api.enroll_in_id(case['external_id'], program_id, today, program_data)
            # Create a risk assessment event.
            program_stage_id = dhis2_api.get_program_stage_id('Underlying Risk Assessment')
            event = dhis2_api.form_to_event(program_id, form, RISK_ASSESSMENT_EVENT_FIELDS, program_stage_id,
                                            case['external_id'])

        return json.dumps(event, default=json_serializer)
开发者ID:aristide,项目名称:commcare-hq,代码行数:56,代码来源:payload_generators.py

示例4: lookup_province_id_from_form_id

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
def lookup_province_id_from_form_id(form_id):
    case = CommCareCase.get_by_xform_id(form_id).first()
    fixture_type = FixtureDataType.by_domain_tag('care-ihapc-live',
                                                 'province').first()

    fixture_item = FixtureDataItem.by_field_value(
        'care-ihapc-live',
        fixture_type,
        'id',
        case.province
    ).first()

    return fixture_item.get_id
开发者ID:dimagi,项目名称:care-sa-reports,代码行数:15,代码来源:models.py

示例5: lookup_age_group_from_form_id

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
def lookup_age_group_from_form_id(form_id):
    case = CommCareCase.get_by_xform_id(form_id).first()

    #TODO property handle invalid age data
    try:
        age = int(case.patient_age)
    except Exception:
        age = 0

    if age < 15:
        return 0
    elif age < 25:
        return 1
    else:
        return 2
开发者ID:dimagi,项目名称:care-sa-reports,代码行数:17,代码来源:models.py

示例6: get_payload

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
    def get_payload(self, repeat_record, form):
        if not Dhis2Settings.is_enabled_for_domain(form['domain']):
            return

        from casexml.apps.case.models import CommCareCase  # avoid circular import
        settings = Dhis2Settings.for_domain(form['domain'])
        dhis2_api = Dhis2Api(settings.dhis2.host, settings.dhis2.username, settings.dhis2.password,
                             settings.dhis2.top_org_unit_name)
        if form['xmlns'] == 'http://openrosa.org/formdesigner/b6a45e8c03a6167acefcdb225ee671cbeb332a40':
            # This is a growth monitoring form. It needs to be converted into
            # a paediatric nutrition assessment event.
            nutrition_id = dhis2_api.get_program_id('Paediatric Nutrition Assessment')
            event = dhis2_api.form_to_event(nutrition_id, form, NUTRITION_ASSESSMENT_EVENT_FIELDS)
            # If the form is not to be forwarded, the event will be None
            return json.dumps(event, default=json_serializer) if event else None

        elif form['xmlns'] == 'http://openrosa.org/formdesigner/39F09AD4-B770-491E-9255-C97B34BDD7FC':
            # This is a risk assessment form. It needs to be converted into a
            # risk assessment event.
            risk_id = dhis2_api.get_program_id('Underlying Risk Assessment')
            # Check whether the case needs to be enrolled in the Risk Assessment Program
            cases = CommCareCase.get_by_xform_id(form.get_id)
            if len(cases) != 1:
                # TODO: Fail permanently
                return None
            case = cases[0]
            if not case.get('external_id'):
                # This case has not yet been pushed to DHIS2.
                # TODO: Try again later
                return None
            # TODO: Test one-line alternative below with risk assessment forms
            # Either ...
            if not dhis2_api.enrolled_in(case['external_id'], 'Underlying Risk Assessment'):
                today = date.today().strftime('%Y-%m-%d')
                program_data = {dhis2_attr: case[cchq_attr]
                                for cchq_attr, dhis2_attr in RISK_ASSESSMENT_PROGRAM_FIELDS.iteritems()}
                dhis2_api.enroll_in_id(case['external_id'], risk_id, today, program_data)
            event = dhis2_api.form_to_event(risk_id, form, RISK_ASSESSMENT_EVENT_FIELDS)
            # ... or just ...
            # event = dhis2_api.form_to_event(risk_id, form, RISK_ASSESSMENT_EVENT_FIELDS, case['external_id'])
            # ...?
            return json.dumps(event, default=json_serializer) if event else None

        else:
            # This is not a form we care about
            return None
开发者ID:jmaina,项目名称:commcare-hq,代码行数:48,代码来源:payload_generators.py

示例7: get_payload

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
 def get_payload(self, repeat_record):
     form = self._payload_doc(repeat_record)
     cases = CommCareCase.get_by_xform_id(form.get_id)
     return json.dumps({'form_id': form._id,
                        'received_on': json_format_datetime(form.received_on),
                        'case_ids': [case._id for case in cases]})
开发者ID:dszafranek,项目名称:commcare-hq,代码行数:8,代码来源:models.py

示例8: care_case

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
 def care_case(self):
     return CommCareCase.get_by_xform_id(self._id).first()
开发者ID:,项目名称:,代码行数:4,代码来源:

示例9: lookup_gender_from_form_id

# 需要导入模块: from casexml.apps.case.models import CommCareCase [as 别名]
# 或者: from casexml.apps.case.models.CommCareCase import get_by_xform_id [as 别名]
def lookup_gender_from_form_id(form_id):
    case = CommCareCase.get_by_xform_id(form_id).first()
    return case.gender
开发者ID:dimagi,项目名称:care-sa-reports,代码行数:5,代码来源:models.py


注:本文中的casexml.apps.case.models.CommCareCase.get_by_xform_id方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。