# Class PatientAppointment

Namespace
  adas_core.Domain.Models

Assembly
  adas-core.Domain.dll

A JSON converter that handles the serialization and deserialization of PatientAppointment objects to and from JSON format.

    public class PatientAppointment : JsonConverter

Inheritance
  object
  JsonConverter
  PatientAppointment

Inherited Members
  JsonConverter.CanRead
  JsonConverter.CanWrite
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

Extension Methods
  NumberUtils.IsNumber(object)
  NumberUtils.ToDouble(object)
  ObjectUtils.ToStr(object?)

## Properties

### Allergies

    public List<Allergies> Allergies { get; set; }

#### Property Value

List<Allergies>

### AppointmentOperationType

    public OperationType? AppointmentOperationType { get; set; }

#### Property Value

OperationType?

### AppointmentReason

    public string? AppointmentReason { get; set; }

#### Property Value

string

### AppointmentStatus

    public OperationType? AppointmentStatus { get; set; }

#### Property Value

OperationType?

### AppointmentType

    public string? AppointmentType { get; set; }

#### Property Value

string

### CreateTime

    public DateTime? CreateTime { get; set; }

#### Property Value

DateTime?

### Duration

    public double Duration { get; set; }

#### Property Value

double

### EpisodeActivation

    public bool EpisodeActivation { get; set; }

#### Property Value

bool

### EventReason

    public string? EventReason { get; set; }

#### Property Value

string

### FillerContact

    public Person? FillerContact { get; set; }

#### Property Value

Person

### FillerOrder

    public Entity? FillerOrder { get; set; }

#### Property Value

Entity

### Id

    public ObjectId Id { get; set; }

#### Property Value

ObjectId

### Patient

    public Person? Patient { get; set; }

#### Property Value

Person

### PatientClass

    public string? PatientClass { get; set; }

#### Property Value

string

### PatientId

    public ObjectId PatientId { get; set; }

#### Property Value

ObjectId

### PlacerContact

    public Person? PlacerContact { get; set; }

#### Property Value

Person

### PlacerOrder

    public Entity? PlacerOrder { get; set; }

#### Property Value

Entity

### ResourceGroups

    public List<PatientAppointmentResourceGroup> ResourceGroups { get; set; }

#### Property Value

List<PatientAppointmentResourceGroup>

### Timings

    public List<Timing> Timings { get; set; }

#### Property Value

List<Timing>

### UpdateTime

    public DateTime UpdateTime { get; set; }

#### Property Value

DateTime

### VisitNumber

    public string? VisitNumber { get; set; }

#### Property Value

string

## Methods

### ApplyResourceGroups(PatientAppointment?)

Applies the configured actions to each resource group, optionally pulling existing data from the provided database appointment. When `apdb` is supplied and has a matching resource group, the actions are applied against the persisted data; otherwise the group is processed with a null source.

    public List<PatientAppointmentResourceGroup> ApplyResourceGroups(PatientAppointment? apdb = null)

#### Parameters

`apdb` PatientAppointment

  The optional persisted PatientAppointment whose resource groups provide the source data for the actions. May be null or have fewer resource groups than the current list.

#### Returns

List<PatientAppointmentResourceGroup>

  The list of PatientAppointmentResourceGroup instances with services, resources, locations, and personnel populated after applying the configured actions.

### CanConvert(Type)

Determines whether the converter can convert the specified type, supporting only the PatientAppointment type.

    public override bool CanConvert(Type objectType)

#### Parameters

`objectType` Type

  The type to check for converter support.

#### Returns

bool

  `true` if `objectType` is PatientAppointment; otherwise, `false`.

### ReadJson(JsonReader, Type, object?, JsonSerializer)

Reads the JSON representation of an object using the specified reader and serializer. This override is not yet implemented and currently throws a NotImplementedException.

    public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)

#### Parameters

`reader` JsonReader

  The Newtonsoft.Json.JsonReader used to read the JSON content.

`objectType` Type

  The type of the object being deserialized.

`existingValue` object

  The existing value of the object being read, or `null` if no value exists.

`serializer` JsonSerializer

  The Newtonsoft.Json.JsonSerializer invoking the converter.

#### Returns

object

  An object representing the deserialized value.

#### Exceptions

NotImplementedException

  Always thrown, as the method has not been implemented.

### WriteJson(JsonWriter, object?, JsonSerializer)

Serializes the given value to JSON while excluding the "Id" property from the output. If the value is null, nothing is written to the writer.

    public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)

#### Parameters

`writer` JsonWriter

  The JSON writer to which the serialized output is written.

`value` object

  The object to serialize. A null value results in no output being written.

`serializer` JsonSerializer

  The JSON serializer used to perform the conversion.