use utf8;

package SemanticWeb::Schema::MedicalProcedure;

# ABSTRACT: A process of care used in either a diagnostic

use Moo;

extends qw/ SemanticWeb::Schema::MedicalEntity /;

use MooX::JSON_LD 'MedicalProcedure';
use Ref::Util qw/ is_plain_hashref /;

use namespace::autoclean;

our $VERSION = 'v11.01.0';

has body_location => (
    is        => 'rw',
    predicate => '_has_body_location',
    json_ld   => 'bodyLocation',

has followup => (
    is        => 'rw',
    predicate => '_has_followup',
    json_ld   => 'followup',

has how_performed => (
    is        => 'rw',
    predicate => '_has_how_performed',
    json_ld   => 'howPerformed',

has preparation => (
    is        => 'rw',
    predicate => '_has_preparation',
    json_ld   => 'preparation',

has procedure_type => (
    is        => 'rw',
    predicate => '_has_procedure_type',
    json_ld   => 'procedureType',

has status => (
    is        => 'rw',
    predicate => '_has_status',
    json_ld   => 'status',




=encoding UTF-8

=head1 NAME

SemanticWeb::Schema::MedicalProcedure - A process of care used in either a diagnostic

=head1 VERSION

version v11.01.0


A process of care used in either a diagnostic, therapeutic, preventive or
palliative capacity that relies on invasive (surgical), non-invasive, or
other techniques.


=head2 C<body_location>


Location in the body of the anatomical structure.

A body_location should be one of the following types:


=item C<Str>


=head2 C<_has_body_location>

A predicate for the L</body_location> attribute.

=head2 C<followup>

Typical or recommended followup care after the procedure is performed.

A followup should be one of the following types:


=item C<Str>


=head2 C<_has_followup>

A predicate for the L</followup> attribute.

=head2 C<how_performed>


How the procedure is performed.

A how_performed should be one of the following types:


=item C<Str>


=head2 C<_has_how_performed>

A predicate for the L</how_performed> attribute.

=head2 C<preparation>

Typical preparation that a patient must undergo before having the procedure

A preparation should be one of the following types:


=item C<InstanceOf['SemanticWeb::Schema::MedicalEntity']>

=item C<Str>


=head2 C<_has_preparation>

A predicate for the L</preparation> attribute.

=head2 C<procedure_type>


The type of procedure, for example Surgical, Noninvasive, or Percutaneous.

A procedure_type should be one of the following types:


=item C<InstanceOf['SemanticWeb::Schema::MedicalProcedureType']>


=head2 C<_has_procedure_type>

A predicate for the L</procedure_type> attribute.

=head2 C<status>

The status of the study (enumerated).

A status should be one of the following types:


=item C<InstanceOf['SemanticWeb::Schema::EventStatusType']>

=item C<InstanceOf['SemanticWeb::Schema::MedicalStudyStatus']>

=item C<Str>


=head2 C<_has_status>

A predicate for the L</status> attribute.

=head1 SEE ALSO


=head1 SOURCE

The development version is on github at L<>
and may be cloned from L<git://>

=head1 BUGS

Please report any bugs or feature requests on the bugtracker website

When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired

=head1 AUTHOR

Robert Rothenberg <>


This software is Copyright (c) 2018-2020 by Robert Rothenberg.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)